<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.12"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>emp-toolkit: NetIO Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="logo-full-doxygen.png"/></td>
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">emp-toolkit
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.12 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('class_net_i_o.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-attribs">Public Attributes</a> &#124;
<a href="class_net_i_o-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">NetIO Class Reference<div class="ingroups"><a class="el" href="group___i_o.html">Input/Output</a></div></div>  </div>
</div><!--header-->
<div class="contents">

<p><code>#include &lt;<a class="el" href="net__io__channel_8h_source.html">net_io_channel.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for NetIO:</div>
<div class="dyncontent">
 <div class="center">
  <img src="class_net_i_o.png" usemap="#NetIO_map" alt=""/>
  <map id="NetIO_map" name="NetIO_map">
<area href="class_i_o_channel.html" alt="IOChannel&lt; NetIO &gt;" shape="rect" coords="0,0,128,24"/>
</map>
 </div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:aa8cc94591151e568c8b90cfd75a2eb47"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_net_i_o.html#aa8cc94591151e568c8b90cfd75a2eb47">NetIO</a> (const char *address, int <a class="el" href="input-check-malicious_8cpp.html#a63c89c04d1feae07ca35558055155ffb">port</a>)</td></tr>
<tr class="separator:aa8cc94591151e568c8b90cfd75a2eb47"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a713464b6b21b4b585e36c108a949637d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_net_i_o.html#a713464b6b21b4b585e36c108a949637d">~NetIO</a> ()</td></tr>
<tr class="separator:a713464b6b21b4b585e36c108a949637d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a288cc37b49fb37751624122f339772b5"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_net_i_o.html#a288cc37b49fb37751624122f339772b5">sync</a> ()</td></tr>
<tr class="separator:a288cc37b49fb37751624122f339772b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a583679fb7ff58c74375cfb30f457ab45"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_net_i_o.html#a583679fb7ff58c74375cfb30f457ab45">set_nodelay</a> ()</td></tr>
<tr class="separator:a583679fb7ff58c74375cfb30f457ab45"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a61981ac0d4d91a96884e0c30999137ff"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_net_i_o.html#a61981ac0d4d91a96884e0c30999137ff">set_delay</a> ()</td></tr>
<tr class="separator:a61981ac0d4d91a96884e0c30999137ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeea2b352b13b9a24418fc0e116e44755"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_net_i_o.html#aeea2b352b13b9a24418fc0e116e44755">flush</a> ()</td></tr>
<tr class="separator:aeea2b352b13b9a24418fc0e116e44755"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abfdd4bd011b00c9ddeec0f94dd20e441"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_net_i_o.html#abfdd4bd011b00c9ddeec0f94dd20e441">send_data_impl</a> (const void *data, int len)</td></tr>
<tr class="separator:abfdd4bd011b00c9ddeec0f94dd20e441"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a99a38fac8881771d6cfaffef6fca5c2d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_net_i_o.html#a99a38fac8881771d6cfaffef6fca5c2d">recv_data_impl</a> (void *data, int len)</td></tr>
<tr class="separator:a99a38fac8881771d6cfaffef6fca5c2d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_class_i_o_channel"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_class_i_o_channel')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="class_i_o_channel.html">IOChannel&lt; NetIO &gt;</a></td></tr>
<tr class="memitem:ac896441a0a757bc1170d7544483f6f3a inherit pub_methods_class_i_o_channel"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_i_o_channel.html#ac896441a0a757bc1170d7544483f6f3a">send_data</a> (const void *data, int nbyte)</td></tr>
<tr class="separator:ac896441a0a757bc1170d7544483f6f3a inherit pub_methods_class_i_o_channel"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aecdc2e6d7e95d96d346c63fc57e5b4eb inherit pub_methods_class_i_o_channel"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_i_o_channel.html#aecdc2e6d7e95d96d346c63fc57e5b4eb">recv_data</a> (void *data, int nbyte)</td></tr>
<tr class="separator:aecdc2e6d7e95d96d346c63fc57e5b4eb inherit pub_methods_class_i_o_channel"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac6bef80994fb0c2096ac00078f680e67 inherit pub_methods_class_i_o_channel"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_i_o_channel.html#ac6bef80994fb0c2096ac00078f680e67">~IOChannel</a> ()</td></tr>
<tr class="separator:ac6bef80994fb0c2096ac00078f680e67 inherit pub_methods_class_i_o_channel"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aec03e98420a39877813e34bbaf2600d7 inherit pub_methods_class_i_o_channel"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_i_o_channel.html#aec03e98420a39877813e34bbaf2600d7">set_key</a> (const <a class="el" href="garble_2block_8h.html#a65abbf31b0a30290189cdb5059b5f785">block</a> *b)</td></tr>
<tr class="separator:aec03e98420a39877813e34bbaf2600d7 inherit pub_methods_class_i_o_channel"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a40d5c1cdd081e0e6ab802630f162b49a inherit pub_methods_class_i_o_channel"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_i_o_channel.html#a40d5c1cdd081e0e6ab802630f162b49a">send_data_enc</a> (const void *data, int len)</td></tr>
<tr class="separator:a40d5c1cdd081e0e6ab802630f162b49a inherit pub_methods_class_i_o_channel"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adb27975847c736b9ecff084b04f56131 inherit pub_methods_class_i_o_channel"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_i_o_channel.html#adb27975847c736b9ecff084b04f56131">send_block_enc</a> (const <a class="el" href="garble_2block_8h.html#a65abbf31b0a30290189cdb5059b5f785">block</a> *data, int len)</td></tr>
<tr class="separator:adb27975847c736b9ecff084b04f56131 inherit pub_methods_class_i_o_channel"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab72c7505c19f1d9fe99d03c546a9b358 inherit pub_methods_class_i_o_channel"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_i_o_channel.html#ab72c7505c19f1d9fe99d03c546a9b358">send_bn_enc</a> (const bn_t *bn, size_t num)</td></tr>
<tr class="separator:ab72c7505c19f1d9fe99d03c546a9b358 inherit pub_methods_class_i_o_channel"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a17bb187f319c7b48470377a55b9394aa inherit pub_methods_class_i_o_channel"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_i_o_channel.html#a17bb187f319c7b48470377a55b9394aa">recv_data_enc</a> (void *data, int len)</td></tr>
<tr class="separator:a17bb187f319c7b48470377a55b9394aa inherit pub_methods_class_i_o_channel"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2998055be4fd09f3bef9e7c179d0fb24 inherit pub_methods_class_i_o_channel"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_i_o_channel.html#a2998055be4fd09f3bef9e7c179d0fb24">recv_block_enc</a> (<a class="el" href="garble_2block_8h.html#a65abbf31b0a30290189cdb5059b5f785">block</a> *data, int len)</td></tr>
<tr class="separator:a2998055be4fd09f3bef9e7c179d0fb24 inherit pub_methods_class_i_o_channel"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad19abdfff835d15ab6386fdbea252630 inherit pub_methods_class_i_o_channel"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_i_o_channel.html#ad19abdfff835d15ab6386fdbea252630">send_eb_enc</a> (const eb_t *eb, size_t num)</td></tr>
<tr class="separator:ad19abdfff835d15ab6386fdbea252630 inherit pub_methods_class_i_o_channel"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0bef7e04299037573745c8e2495c8f82 inherit pub_methods_class_i_o_channel"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_i_o_channel.html#a0bef7e04299037573745c8e2495c8f82">recv_eb_enc</a> (eb_t *eb, size_t num)</td></tr>
<tr class="separator:a0bef7e04299037573745c8e2495c8f82 inherit pub_methods_class_i_o_channel"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab52e28fd4733fea420c1a5543a05033b inherit pub_methods_class_i_o_channel"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_i_o_channel.html#ab52e28fd4733fea420c1a5543a05033b">recv_bn_enc</a> (bn_t *bn, size_t num)</td></tr>
<tr class="separator:ab52e28fd4733fea420c1a5543a05033b inherit pub_methods_class_i_o_channel"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a41614ba924161dfafdced9f2d2201823 inherit pub_methods_class_i_o_channel"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_i_o_channel.html#a41614ba924161dfafdced9f2d2201823">send_block</a> (const <a class="el" href="garble_2block_8h.html#a65abbf31b0a30290189cdb5059b5f785">block</a> *data, int nblock)</td></tr>
<tr class="separator:a41614ba924161dfafdced9f2d2201823 inherit pub_methods_class_i_o_channel"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a590745a2e3eadaaa64dac6c76604d010 inherit pub_methods_class_i_o_channel"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_i_o_channel.html#a590745a2e3eadaaa64dac6c76604d010">recv_block</a> (<a class="el" href="garble_2block_8h.html#a65abbf31b0a30290189cdb5059b5f785">block</a> *data, int nblock)</td></tr>
<tr class="separator:a590745a2e3eadaaa64dac6c76604d010 inherit pub_methods_class_i_o_channel"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aad8d725dd71ade3a6e846349beb16d43 inherit pub_methods_class_i_o_channel"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_i_o_channel.html#aad8d725dd71ade3a6e846349beb16d43">send_eb</a> (const eb_t *eb, size_t num)</td></tr>
<tr class="separator:aad8d725dd71ade3a6e846349beb16d43 inherit pub_methods_class_i_o_channel"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa028f3ebb09c2cfa9c58be21ef81c271 inherit pub_methods_class_i_o_channel"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_i_o_channel.html#aa028f3ebb09c2cfa9c58be21ef81c271">recv_eb</a> (eb_t *eb, size_t num)</td></tr>
<tr class="separator:aa028f3ebb09c2cfa9c58be21ef81c271 inherit pub_methods_class_i_o_channel"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6772f720a933d14fcaa1f23de41c8aaa inherit pub_methods_class_i_o_channel"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_i_o_channel.html#a6772f720a933d14fcaa1f23de41c8aaa">send_bn</a> (const bn_t *bn, size_t num)</td></tr>
<tr class="separator:a6772f720a933d14fcaa1f23de41c8aaa inherit pub_methods_class_i_o_channel"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aee3630f3b3f4fcc602ade811434660cc inherit pub_methods_class_i_o_channel"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_i_o_channel.html#aee3630f3b3f4fcc602ade811434660cc">recv_bn</a> (bn_t *bn, size_t num)</td></tr>
<tr class="separator:aee3630f3b3f4fcc602ade811434660cc inherit pub_methods_class_i_o_channel"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
Public Attributes</h2></td></tr>
<tr class="memitem:aaf29a7a772f833effe22b18046bd49d2"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_net_i_o.html#aaf29a7a772f833effe22b18046bd49d2">is_server</a></td></tr>
<tr class="separator:aaf29a7a772f833effe22b18046bd49d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa1bcbf53f7f2e5b73406647bc31d3ffe"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_net_i_o.html#aa1bcbf53f7f2e5b73406647bc31d3ffe">mysocket</a> = -1</td></tr>
<tr class="separator:aa1bcbf53f7f2e5b73406647bc31d3ffe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1c4ee7e5c23e4432b2f77c6a443ce0c0"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_net_i_o.html#a1c4ee7e5c23e4432b2f77c6a443ce0c0">consocket</a> = -1</td></tr>
<tr class="separator:a1c4ee7e5c23e4432b2f77c6a443ce0c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeeb2779fd724124234542937361fd4ec"><td class="memItemLeft" align="right" valign="top">FILE *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_net_i_o.html#aeeb2779fd724124234542937361fd4ec">stream</a> = nullptr</td></tr>
<tr class="separator:aeeb2779fd724124234542937361fd4ec"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a28e34fbfa26d41fc047b4f2cf9717336"><td class="memItemLeft" align="right" valign="top">char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_net_i_o.html#a28e34fbfa26d41fc047b4f2cf9717336">buffer</a> = nullptr</td></tr>
<tr class="separator:a28e34fbfa26d41fc047b4f2cf9717336"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6ca45eba681048394b2cd2288cab3d73"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_net_i_o.html#a6ca45eba681048394b2cd2288cab3d73">has_sent</a> = false</td></tr>
<tr class="separator:a6ca45eba681048394b2cd2288cab3d73"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_attribs_class_i_o_channel"><td colspan="2" onclick="javascript:toggleInherit('pub_attribs_class_i_o_channel')"><img src="closed.png" alt="-"/>&#160;Public Attributes inherited from <a class="el" href="class_i_o_channel.html">IOChannel&lt; NetIO &gt;</a></td></tr>
<tr class="memitem:a0eac8ab2f799b114b78dba43d690fa1b inherit pub_attribs_class_i_o_channel"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_p_r_g.html">PRG</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_i_o_channel.html#a0eac8ab2f799b114b78dba43d690fa1b">prg</a></td></tr>
<tr class="separator:a0eac8ab2f799b114b78dba43d690fa1b inherit pub_attribs_class_i_o_channel"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="aa8cc94591151e568c8b90cfd75a2eb47"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa8cc94591151e568c8b90cfd75a2eb47">&sect;&nbsp;</a></span>NetIO()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">NetIO::NetIO </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>address</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>port</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a713464b6b21b4b585e36c108a949637d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a713464b6b21b4b585e36c108a949637d">&sect;&nbsp;</a></span>~NetIO()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">NetIO::~NetIO </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="aeea2b352b13b9a24418fc0e116e44755"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aeea2b352b13b9a24418fc0e116e44755">&sect;&nbsp;</a></span>flush()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void NetIO::flush </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a99a38fac8881771d6cfaffef6fca5c2d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a99a38fac8881771d6cfaffef6fca5c2d">&sect;&nbsp;</a></span>recv_data_impl()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void NetIO::recv_data_impl </td>
          <td>(</td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>len</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="abfdd4bd011b00c9ddeec0f94dd20e441"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abfdd4bd011b00c9ddeec0f94dd20e441">&sect;&nbsp;</a></span>send_data_impl()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void NetIO::send_data_impl </td>
          <td>(</td>
          <td class="paramtype">const void *&#160;</td>
          <td class="paramname"><em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>len</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a61981ac0d4d91a96884e0c30999137ff"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a61981ac0d4d91a96884e0c30999137ff">&sect;&nbsp;</a></span>set_delay()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void NetIO::set_delay </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a583679fb7ff58c74375cfb30f457ab45"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a583679fb7ff58c74375cfb30f457ab45">&sect;&nbsp;</a></span>set_nodelay()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void NetIO::set_nodelay </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a288cc37b49fb37751624122f339772b5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a288cc37b49fb37751624122f339772b5">&sect;&nbsp;</a></span>sync()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void NetIO::sync </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a id="a28e34fbfa26d41fc047b4f2cf9717336"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a28e34fbfa26d41fc047b4f2cf9717336">&sect;&nbsp;</a></span>buffer</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">char* NetIO::buffer = nullptr</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="a1c4ee7e5c23e4432b2f77c6a443ce0c0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1c4ee7e5c23e4432b2f77c6a443ce0c0">&sect;&nbsp;</a></span>consocket</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int NetIO::consocket = -1</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="a6ca45eba681048394b2cd2288cab3d73"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6ca45eba681048394b2cd2288cab3d73">&sect;&nbsp;</a></span>has_sent</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool NetIO::has_sent = false</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="aaf29a7a772f833effe22b18046bd49d2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aaf29a7a772f833effe22b18046bd49d2">&sect;&nbsp;</a></span>is_server</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool NetIO::is_server</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="aa1bcbf53f7f2e5b73406647bc31d3ffe"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa1bcbf53f7f2e5b73406647bc31d3ffe">&sect;&nbsp;</a></span>mysocket</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int NetIO::mysocket = -1</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="aeeb2779fd724124234542937361fd4ec"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aeeb2779fd724124234542937361fd4ec">&sect;&nbsp;</a></span>stream</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FILE* NetIO::stream = nullptr</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>/Users/wangxiao/git/emp-toolkit/emp-tool/io/<a class="el" href="net__io__channel_8h_source.html">net_io_channel.h</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="class_net_i_o.html">NetIO</a></li>
    <li class="footer">Generated by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.12 </li>
  </ul>
</div>
</body>
</html>
